Skip to content

Develop local sources in Julia 1.10 root tests - #4068

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-step-limiter-julia110-compat
Draft

Develop local sources in Julia 1.10 root tests#4068
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-step-limiter-julia110-compat

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this draft until reviewed by @ChrisRackauckas.

Depends on #4066. This branch intentionally contains only the test-harness and regression-test changes; it does not duplicate the compatibility-floor changes from #4066.

Summary

  • Call SciMLTesting's public develop_sources! helper before root-package group dispatch so Julia 1.10 tests the monorepo's local sublibraries. The helper is a no-op on Julia 1.11 and later, where [sources] is native.
  • Assert that the limiter integration test loads OrdinaryDiffEqCore, OrdinaryDiffEqLowOrderRK, and OrdinaryDiffEqSSPRK from this checkout.

Problem

Julia 1.10 ignores the root project's [sources] section when Pkg.test() creates its temporary environment. A clean GROUP=Integrators_I Pkg.test() at fd3f95bb99 therefore selected registered OrdinaryDiffEqCore 4.11.0, OrdinaryDiffEqLowOrderRK 2.2.1, and OrdinaryDiffEqSSPRK 2.2.0 instead of the local Core 4.12.0, LowOrderRK 2.2.2, and SSPRK 2.2.3. The Step Limiter test then reported 170 passes, 2 failures, and 1 error.

The hosted Julia 1.10 jobs for #3835 and #4003 passed because the reusable workflow separately developed in-repo sources before testing. The package's direct test harness should establish the same coherent source graph itself.

This is a test-environment issue, not a regression in the recent stage-limiter trait. The immediate parent of #4003 also fails with registered siblings. Older checkouts are not stable bisect endpoints against today's moving registry: the pre-#3835 checkout fails all 129 old constructor-level limiter assertions because newer registered siblings call those callbacks twice. Commit fe90a44dd8 is relevant only as the structural introduction of the root [sources] assumption that Julia 1.10 cannot honor natively.

Local verification

A repository-wide Runic check identifies only the pre-existing test/Integrators_I/disco_tests.jl formatting failure handled independently by #4064.

Julia 1.10 ignores root [sources] when Pkg.test creates its temporary environment, which can pair local integration tests with older registered sublibraries. Develop the local source graph before root group dispatch and assert the limiter tests load the implicated local packages.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Implementation/verification scratchpad:

  1. Reproduced the clean Julia 1.10 failure with the package's GROUP=Integrators_I harness and recorded the registered/local version mismatch.
  2. Confirmed the failure predates Add has_stage_limiter trait: error on stage_limiter for unsupported methods #4003, so this is not attributed to the stage-limiter trait implementation.
  3. Used SciMLTesting's public develop_sources! backport and added local-path assertions for the three packages implicated by the limiter failures.
  4. Kept the branch to two test files; Restore SciMLBase 3.39 compatibility for owner imports #4066 remains an explicit prerequisite rather than being copied into this branch.
  5. Ran the full group locally on Julia 1.10.11 and Julia 1.12.6 atop Restore SciMLBase 3.39 compatibility for owner imports #4066. Both passed Step Limiter 254/254 and Discontinuity Detection 28/28, with the package-level test result passing.
  6. Ran Runic on both changed files and git diff --check. The only repository-wide Runic failure is the independent disco_tests.jl formatting handled by Run Runic on the disco-optimizations files #4064.

Copy link
Copy Markdown
Member Author

Early CI dependency checkpoint: the Julia 1.10 Integrators_I job stops during package resolution before loading this test-harness change. General ends at SciMLBase 3.39.1, while the current master copy of OrdinaryDiffEqNonlinearSolve 2.6.0 still requires 3.40, producing the exact 3.39-vs-3.40 unsatisfiable requirement. This is the declared #4066 prerequisite. The local #4066 + #4068 stack completed the same official group on Julia 1.10 and 1.12 (Step Limiter 254/254, DISCO 28/28, package passed). Runic independently reports the clean-master DISCO formatting handled by #4064. No resolver workaround is being added here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants